package com.example.hw01;

import javax.servlet.ServletException; // 导入 Servlet 异常类
import javax.servlet.annotation.WebServlet; // 导入 Servlet 注解
import javax.servlet.http.HttpServlet; // 导入 HttpServlet 类
import javax.servlet.http.HttpServletRequest; // 导入 HttpServletRequest 类
import javax.servlet.http.HttpServletResponse; // 导入 HttpServletResponse 类
import java.io.IOException; // 导入 IO 异常类
import java.io.PrintWriter; // 导入打印写入器类
import java.util.Collection; // 导入集合类

// 声明这是一个 Servlet，映射的 URL 是 /ListCakeServlet
@WebServlet(name = "ListCakeServlet", urlPatterns = "/ListCakeServlet")
public class ListCakeServlet extends HttpServlet {
    // 序列版本 UID，用于序列化
    private static final long serialVersionUID = 1L;

    // 处理 HTTP GET 请求的方法
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {

        // 设置响应内容类型为 HTML，并指定字符编码
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter out = resp.getWriter(); // 获取向客户端输出的打印写入器

        // 从 CakeDB 获取所有蛋糕的集合
        Collection<Cake> cakes = CakeDB.getAll();

        // 输出标题
        out.write("本站提供的蛋糕有：<br>");

        // 遍历每个蛋糕并输出其名称以及购买链接
        for (Cake cake : cakes) {
            // 创建购买链接，包含蛋糕的 ID
            String url = "PurchaseServlet?id=" + cake.getId();
            out.write(cake.getName() + "<a href='" + url
                    + "'>点击购买</a><br>"); // 输出蛋糕名称及购买链接
        }
    }
}
